package Stream01;
/*
1.创建一个集合，存储多个字符串元素
2.把集合中所有以"张"开头的元素存储到一个新的集合
3.把"张"开头的集合的长度为3的元素存储到一个新的集合、
4.遍历上一步得到的集合
 */

import java.util.ArrayList;

public class StreamDemo {
    public static void main(String[] args) {
        //创建一个集合，存储多个字符串元素
        ArrayList<String> list=new ArrayList<String>();

        list.add("姜恒星");
        list.add("张无忌");
        list.add("王祖贤");
        list.add("郝万杰");
        list.add("邓吉壕");
        list.add("侯佳超");

        //把集合中所有以"张"开头的元素存储到一个新的集合
        ArrayList<String> zhangList=new ArrayList<String>();
        for (String s:list){
            if (s.startsWith("张")){//startWith()判断数组中第一个元素是否与"张"相同
                zhangList.add(s);
            }
        }

        //把"张"开头的集合的长度为3的元素存储到一个新的集合
        ArrayList<String> zhang3List=new ArrayList<String>();
        for (String s1:zhangList){
            if (s1.length()==3){
                zhang3List.add(s1);
            }
        }

        //遍历上一步得到的集合
        for (String s2:zhang3List){
            System.out.println(s2);
        }
        System.out.println("--------");

        //Stream流改进
//        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).
//        forEach(s-> System.out.println(s));//运用Stream过滤和Lambda一起使用
        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).
                forEach(System.out::println);//运用Stream过滤和Lambda一起使用

    }
}
